﻿using System.ServiceModel;
using LiSA_Server.Base.AbstractContracts;
using LiSA_Server.Base.AbstractServices;
using LiSA_Service.Faults;

namespace LiSA_WindowsService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ILiSA_Service" in both code and config file together.
    [ServiceContract(Name = "IService")]
    public interface ILiSA_Service
    {
        [OperationContract(Name = "ExecuteCommand")]
        [ServiceKnownType("GetKnownCommandTypes", typeof(ServiceKnownTypes))]
        [FaultContract(typeof(InvalidParametersFault))]
        void ExecuteCommand(Command command);

        [OperationContract(Name = "ExecuteQuery")]
        [ServiceKnownType("GetKnownQueryTypes", typeof(ServiceKnownTypes))]
        [FaultContract(typeof(LoginFault))]
        QueryResult ExecuteQuery(Query query);
    }
}
